home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / programming / e / lsestuff / nmilist.e < prev    next >
Text File  |  1999-11-29  |  1KB  |  69 lines

  1. OPT MODULE
  2.  
  3. MODULE 'leifoo/nm'
  4. MODULE 'leifoo/nmList'
  5.  
  6. EXPORT OBJECT nmIList OF nmList
  7. ENDOBJECT
  8.  
  9. PROC find(id, startnode=NIL) OF nmIList
  10.    DEF nmI:REG PTR TO nmI
  11.    nmI := IF startnode = NIL THEN self.first() ELSE startnode
  12.    WHILE nmI
  13.       IF nmI.id=id THEN RETURN nmI
  14.       nmI:=nmI.next
  15.    ENDWHILE
  16. ENDPROC NIL
  17.  
  18. PROC findR(id, startnode=NIL) OF nmIList
  19.    DEF nmI:REG PTR TO nmI
  20.    nmI := IF startnode = NIL THEN self.last() ELSE startnode
  21.    WHILE nmI
  22.       IF nmI.id=id THEN RETURN nmI
  23.       nmI:=nmI.prev
  24.    ENDWHILE
  25. ENDPROC NIL
  26.  
  27. PROC getMaxID() OF nmIList
  28.    DEF n:REG PTR TO nmI, id:REG
  29.    id := -2000000000
  30.    n := self.first()
  31.    WHILE n
  32.       id := IF n.id > id THEN n.id ELSE id
  33.       n := n.next
  34.    ENDWHILE
  35. ENDPROC id
  36.  
  37. PROC getMinID() OF nmIList
  38.    DEF n:REG PTR TO nmI, id:REG
  39.    id := 2000000000
  40.    n := self.first()
  41.    WHILE n
  42.       id := IF n.id < id THEN n.id ELSE id
  43.       n := n.next
  44.    ENDWHILE
  45. ENDPROC id
  46.  
  47. PROC getSumID() OF nmIList
  48.    DEF n:REG PTR TO nmI, id:REG
  49.    id:=NIL
  50.    n := self.first()
  51.    WHILE n
  52.       id := id + n.id
  53.       n := n.next
  54.    ENDWHILE
  55. ENDPROC id
  56.  
  57.  
  58. PROC scroll(_amount) OF nmIList
  59.    DEF n:REG PTR TO nmI
  60.    DEF amount:REG
  61.    amount := _amount
  62.    n := self.first()
  63.    WHILE n
  64.       n.id := n.id + amount
  65.       n := n.next
  66.    ENDWHILE
  67. ENDPROC
  68.  
  69.